import random
import string

# 定义一个函数，生成指定长度的随机字符串
def generate_random_string(length=5):
    # 使用random.choices函数从string.ascii_lowercase + string.digits中随机选择指定长度的字符，并使用''.join函数将它们连接起来
    return ''.join(random.choices(string.ascii_lowercase + string.digits, k=length))

# 定义一个函数，生成方程和值
def generate_equations_and_values(num_equations=10):
    # 定义一个空列表，用于存储方程
    equations = []
    # 定义一个空列表，用于存储值
    values = []
    # 定义一个空集合，用于存储变量
    variables = set()

    # 循环生成方程和值
    for _ in range(num_equations):
        # 生成两个随机字符串，作为方程的变量
        A = generate_random_string()
        B = generate_random_string()
        # 将变量添加到集合中
        variables.add(A)
        variables.add(B)
        # 生成一个随机值，并保留两位小数
        value = round(random.uniform(0.1, 20.0), 2)
        # 将方程和值添加到列表中
        equations.append([A, B])
        values.append(value)

    # 返回方程、值和变量的列表
    return equations, values, list(variables)

# 定义一个生成查询的函数，参数为查询数量和变量列表
def generate_queries(num_queries=10, variables=[]):
    # 初始化查询列表
    queries = []
    # 循环生成指定数量的查询
    for _ in range(num_queries):
        # 从变量列表中随机选择两个变量
        C = random.choice(variables)
        D = random.choice(variables)
        # 将选择的变量添加到查询列表中
        queries.append([C, D])
    # 返回生成的查询列表
    return queries

# 生成示例数据
equations, values, variables = generate_equations_and_values()
queries = generate_queries(variables=variables)

print("Equations:", equations)
print("Values:", values)
print("Queries:", queries)
